package com.hjm.project.agentInfo.agentInfo.domain;

import com.hjm.framework.aspectj.lang.annotation.Excel;
import com.hjm.framework.web.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/**
 * 服务商对象 agent_info
 *
 * @author LOVE
 * @date 2020-11-24
 */
@Data
public class AgentInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 服务商档位 */
    @Excel(name = "服务商档位")
    private String grade;

    /** 推荐码 */
    @Excel(name = "推荐码")
    private String code;
    private String linkPhoneEncryption;


    /** 特别奖励政策编号 */
    @Excel(name = "特别奖励政策编号")
    private Long specialGradeId;

    /** 省市名称,英文逗号隔开 */
    @Excel(name = "省市名称,英文逗号隔开")
    private String areaName;

    /** null */
    @Excel(name = "null")
    private String manipulateDate;

    /** 结束有效期 */
    @Excel(name = "结束有效期")
    private String endValid;

    /** 起始有效期 */
    @Excel(name = "起始有效期")
    private String beginValid;

    /** 展示身份证号 */
    @Excel(name = "展示身份证号")
    private String showIdentitynum;

    /** 0 开通  1 关闭 */
    @Excel(name = "0 开通  1 关闭")
    private Long profitType;

    /** 市 */
    @Excel(name = "市")
    private String city;

    /** 省 */
    @Excel(name = "省")
    private String province;

    /** 维护销售员 */
    @Excel(name = "维护销售员")
    private String maintain;

    /** 签约销售员 */
    @Excel(name = "签约销售员")
    private String signSale;

    /** 扣款对象 */
    @Excel(name = "扣款对象")
    private String deductObject;

    private String smNum;
    private String smNum1;
    private String smName;
    private String smName1;

    private String teamGrade;


    /** 联系人邮箱 */
    @Excel(name = "联系人邮箱")
    private String linkEmail;

    /** 联系人手机号 */
    @Excel(name = "联系人手机号")
    private String linkPhone;

    /** 联系人姓名 */
    @Excel(name = "联系人姓名")
    private String linkMan;

    /** 工商登记号 */
    @Excel(name = "工商登记号")
    private String registNum;

    /** 社会统一信用码 */
    @Excel(name = "社会统一信用码")
    private String organCode;

    /** 来源: 0 app 1 平台 */
    @Excel(name = "1 正式盟主  2、申请盟主")
    private Long agentNature;

    /** 0：正常结算1：关停结算 2:关停返现结算 3关停Mpos返现结算 4关停电签Pos返现结算 */
    @Excel(name = "0：正常结算1：关停结算 2:关停返现结算 3关停Mpos返现结算 4关停电签Pos返现结算")
    private Long profitStatus;

    /** 备注 */
    @Excel(name = "备注")
    private String note;

    /** 添加时间 */
    @Excel(name = "添加时间")
    private String localtime;

    /** 添加日期 */
    @Excel(name = "添加日期")
    private String localdate;

    /** 添加人 */
    @Excel(name = "添加人")
    private String addName;

    /** 所属服务商编号 */
    @Excel(name = "所属服务商编号")
    private Long belongAgent;

    /** 状态  0正常服务商 1申请服务商 2服务商初审 3服务商终审 4申请打回 5服务商注销 6冻结 */
    @Excel(name = "状态  0正常服务商 1申请服务商 2服务商初审 3服务商终审 4申请打回 5服务商注销 6冻结")
    private String agentStatus;

    /** 法人身份证 */
    @Excel(name = "法人身份证")
    private String identityNum;

    /** 法人姓名 */
    @Excel(name = "法人姓名")
    private String commissary;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String agentArea;

    /** 服务商名称 */
    @Excel(name = "服务商名称")
    private String agentName;
    private String agentNameNoLike; //代理名称精确查找

    /** 服务商编号，主键ID */
    @Excel(name = "服务商编号，主键ID")
    private String agentNum;
    private String topAgentNum;
    private String beautiful; //靓号
    private String beautifulName; //靓号名称
    private String supportLevel; //扶持等级
    private String supportDate; //扶持到期时间
    private Integer posCount;   //机具总量


    private String applyAgentNum;   //目标代理商编号
    private String applyAgentName;  //目标代理商名称
    private String agentNumName;    //代理商名称和编号拼接

    private String ds;          //分润
    private String sheng;       //省
    private String status;      //状态
    private String area;        //地址
    private String loginName;   // 登录名称
    private Long norm_num;      //指标数量
    private String gradeActDate; //扶持活动到期日

    private String upperStatus; //上送状态
    private String signAgent;   //业务类型 1、电签与传统 0传统 4 电签

    private String gbSignAgent;   //GB业务类型 7、GB电签与GB传统 6 GB传统 5 GB电签

    private Integer isExistence;    //是否为展业端管理商户 1-是 2-不是（代理商下仅存单个商户时是）

    private Integer profitStatus27; //采购人开关 0：正常结算1：关停结算
    private Integer is_tax; //是否计税 0 否 1 是


    private String saleAgentNum;
    private String saleType;

    private String endDays;
    private String vm_name;
    private String vm_phone;
    private String agentLevel;
    private String distributionStatus; // 0 正常 1 关闭本级 2 关闭本级及以下

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("grade", getGrade())
            .append("code", getCode())
            .append("specialGradeId", getSpecialGradeId())
            .append("areaName", getAreaName())
            .append("updateTime", getUpdateTime())
            .append("manipulateDate", getManipulateDate())
            .append("endValid", getEndValid())
            .append("beginValid", getBeginValid())
            .append("showIdentitynum", getShowIdentitynum())
            .append("profitType", getProfitType())
            .append("city", getCity())
            .append("province", getProvince())
            .append("maintain", getMaintain())
            .append("signSale", getSignSale())
            .append("linkEmail", getLinkEmail())
            .append("linkPhone", getLinkPhone())
            .append("linkMan", getLinkMan())
            .append("registNum", getRegistNum())
            .append("organCode", getOrganCode())
            .append("agentNature", getAgentNature())
            .append("profitStatus", getProfitStatus())
            .append("note", getNote())
            .append("localtime", getLocaltime())
            .append("localdate", getLocaldate())
            .append("addName", getAddName())
            .append("belongAgent", getBelongAgent())
            .append("agentStatus", getAgentStatus())
            .append("identityNum", getIdentityNum())
            .append("commissary", getCommissary())
            .append("agentArea", getAgentArea())
            .append("agentName", getAgentName())
            .append("agentNum", getAgentNum())
            .append("norm_num", getNorm_num())
            .toString();
    }
}
